package com.literaryfamily.literaryfamily.service.operator;

import com.literaryfamily.literaryfamily.entity.OperatorClients;
import com.literaryfamily.literaryfamily.entity.OperatorIncomes;
import com.literaryfamily.literaryfamily.myUtil.PageUtil;

/**
 * 运营商行为接口
 * 所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 * 此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 *
 * @author 滑稽/因果报应
 */
public interface OperatorBehavior {
    /**
     * 运营商推广用户
     *
     * @param operatorClients 完整的推广信息(写入连接中,以用户触发请求时为准)
     * @return 推广结果
     */
    OperatorIncomes promotionUser(OperatorClients operatorClients, PageUtil pageUtil);

    /**
     * 推广收益(需要用户注册之后才可能得到)
     *
     * @param operatorIncomes 收益账单信息
     * @return
     */
    OperatorIncomes revenueFromPromotion(OperatorIncomes operatorIncomes);

    /**
     * 获取推广列表
     *
     * @param operatorId 运营商
     * @param pageMsg    分页信息,为空时代表不进行分页,获取所有记录
     * @return 对应列表
     */
    OperatorClients getPromotedUsers(Long operatorId, PageUtil pageMsg);



}